home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj8411.arc / DISKTEST.C < prev    next >
Text File  |  1986-09-14  |  1KB  |  47 lines

  1. /* disktest.c - test raw disk i/O */
  2. #include "stdio.h"
  3. #include "ctype.h"
  4.  
  5. #define ASIZE  25000        /* size of area for a buffer */
  6.  
  7. long seqio() , randio() ;
  8. char *align() ;
  9.  
  10. main(argc,argv)
  11.  int argc ;
  12.  char *argv[] ;
  13.  {
  14.     int dno , nstart , nseg , i , nit ;
  15.     int offset ;
  16.     char area[ ASIZE ] ;
  17.     float t ;
  18.     char *pbuf ;
  19.  
  20.     /* ensure that the buffer does not cross a 64K address boundary */
  21.     pbuf = align(area,ASIZE/2) ;  
  22.     printf(" max. no. of sectors per read = %d \n",ASIZE/(2*512));
  23.  
  24.     printf(" drive number (0=a , 1=b ...) \n") ;
  25.     scanf("%d",&dno) ;
  26.     printf(" number of sectors per read: \n");
  27.     scanf("%d",&nseg) ;
  28.     printf(" starting sector number (0 = beginning of disk: \n");
  29.     scanf("%d",&nstart) ;
  30.     printf(" offset between reads (0=sequential I/O) \n");
  31.     scanf("%d",&offset) ;
  32.     printf(" number of iterations: \n");
  33.     scanf("%d",&nit) ;
  34.     if( nseg > 24 )
  35.       { printf(" too many sectors per read \n");
  36.         exit(10) ;
  37.       }
  38.                 /* now do the operation */
  39.     if( offset == 0 )
  40.          t = seqio(dno,nseg,nstart,pbuf,nit) ;
  41.     else t = randio(dno,nseg,nstart,pbuf,nit,offset) ;
  42.  
  43.    
  44.    printf(" %4.2f  Seconds \n", t /18.2 ) ;
  45.    printf(" %4.3f Seconds per read operation \n",  t / (18.2*nit) ) ;
  46.  }
  47.